<?php

namespace app\model;

use support\Model;

/**
 * 云豆充值表
 *
 * 字段说明（参考 @20250719143426_score_charge_table_migration.php）:
 * - id              : 主键，自增
 * - user_id         : 用户ID
 * - score           : 充值金额（单位：云豆/元）
 * - status          : 状态（如：unpay-未支付，paid-已支付等）
 * - transaction_id  : 微信交易号
 * - out_trade_no    : 商户订单号
 * - paid_at         : 支付时间（时间戳）
 * - created_at      : 创建时间（时间戳）
 * - updated_at      : 更新时间（时间戳）
 */

class ScoreChargeModel extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'score_charge';

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;

    /**
     * 可批量赋值字段
     * @var array
     */
    protected $fillable = [
        'user_id',
        'amount',
        'score',
        'status',
        'trade_no',
        'created_at',
        'paid_at'
    ];

    /**
     * 关联用户
     */
    public function user()
    {
        return $this->belongsTo(UserModel::class, 'user_id', 'id');
    }

    /**
     * 获取状态文本
     */
    public function getStatusTextAttribute()
    {
        switch ($this->status) {
            case 0:
                return '待支付';
            case 1:
                return '已支付';
            case 2:
                return '已取消';
            default:
                return '未知状态';
        }
    }
}